/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author fernando
 */
public class Artigo extends Obra implements Serializable {

    public Artigo() {
        super();
        this.periodicoAnal = new Obra();
        this.temas = new ArrayList<Tema>();

    }

    public int getPaginaInicio() {
        return paginaInicio;
    }

    public void setPaginaInicio(int paginaInicio) {
        this.paginaInicio = paginaInicio;
    }

    public int getPaginaFim() {
        return paginaFim;
    }

    public void setPaginaFim(int paginaFim) {
        this.paginaFim = paginaFim;
    }

    public Obra getPeriodicoAnal() {
        return periodicoAnal;
    }

    public void setPeriodicoAnal(Obra periodicoAnal) {
        this.periodicoAnal = periodicoAnal;
    }

    public ArrayList<Tema> getTemas() {
        return temas;
    }

    public void setTemas(ArrayList<Tema> temas) {
        this.temas = temas;
    }
    
     @Override
    public String getObraToString() {
        String livroToString = new String();
        if (this.periodicoAnal.getTipo().equalsIgnoreCase("Anais")) {
            Anais a = (Anais) periodicoAnal;
            
            livroToString = super.getAutoresToStringReferencia();
            livroToString = livroToString +"<b>" + super.getTituloCitacao() +"</b>" + ". In: " + a.getTitulo().toUpperCase() + ", " + a.getAnoPublicacao() + ". " + a.getCidadePublicacao();

        } else if (this.periodicoAnal.getTipo().equalsIgnoreCase("Periodico")) {
            Periodico p = (Periodico) periodicoAnal;
            periodicoAnal = (Periodico) periodicoAnal;
            livroToString = super.getAutoresToStringReferencia();
            livroToString = livroToString + "<b>" + super.getTituloCitacao() + "</b>" + ". " + p.getTitulo() + ", " + p.getVolume() + ", " + p.getNumero() + ", " + p.getAnoPublicacao();

        }


        return livroToString;
    }
    
   

    @Override
    public String toString() {
        
        String livroToString = "<b>Tipologia da Obra</b> <br/>" + super.getTipo() + "<br/><br/>";
        livroToString = livroToString + "<b>Título</b> <br/>" + super.getTitulo() + "<br/><br/>";
        livroToString = livroToString + "<b>Autores</b> </br>" + super.getAutoresToString() + "<br/><br/>";
        
         if (periodicoAnal.getTipo().equalsIgnoreCase("Anais")) {
            livroToString = livroToString + "<b>Anais</b><br/>";
            livroToString = livroToString + periodicoAnal.getObraToString() + "</br></br>";
        } else if (periodicoAnal.getTipo().equalsIgnoreCase("<b>Periodico</b>")) {
            livroToString = livroToString + "<b>Periódico</b><br/>";
            livroToString = livroToString + periodicoAnal.getObraToString() + "</br></br>";
        }
               
        livroToString = livroToString + "<b>Palavras-chave</b> </br>" + this.getTemasToString()+ "</br><br/>";
        
       
            
        
        return livroToString;
    }

    public String getTemasToString() {
        temasToString = "<ul>";
        Iterator i = temas.iterator();
        Tema t = new Tema();
        while (i.hasNext()) {
            t = (Tema) i.next();
            String tema = t.getTema();

            temasToString = temasToString + "<li>" + tema + "<li/><br>";
        }

        temasToString = temasToString + "<ul/>";
        return temasToString;
    }

    public void addAutor(Autor a) {
        ArrayList<Autor> autores = super.getAutores();
        autores.add(a);
        super.setAutores(autores);
    }

    public void addTema(Tema tema) {
        this.temas.add(tema);
    }
    private String temasToString;
    private int paginaInicio;
    private int paginaFim;
    private Obra periodicoAnal;
    private ArrayList<Tema> temas;
}
